package com.by.component.vod;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.by.datasource.tenant.TCorpCode;
import com.by.datasource.tenant.TProjectId;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 云点播文件(com.by.component.vod.VodFile)表数据库实体类
 *
 * @author yanbinghao
 * @since 2025-10-10 18:37:42
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("vod_file")
@TCorpCode
@TProjectId
public class VodFile extends Model<VodFile> {

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 文件编码
     */
    private String fileCode;
    /**
     * 文件类型（1：图片；2：视频；）
     */
    private Integer fileType;
    /**
     * vod应用id
     */
    private Long vodAppId;
    /**
     * 文件分类id
     */
    private Integer classId;
    /**
     * 后续任务
     */
    private String procedureTask;
    /**
     * 上传已完成（0：否；1：是；）
     */
    private Integer uploadFinishFlag;
    /**
     * 后续任务已完成（0：否；1：是；）
     */
    private Integer procedureTaskFinishFlag;
    /**
     * vod文件id
     */
    private String vodFileId;
    /**
     * 媒体文件URL
     */
    private String mediaUrl;
    /**
     * 媒体文件大小，单位：字节
     */
    private Long mediaSize;
    /**
     * 容器类型，例如 m4a，mp4 等
     */
    private Long mediaContainer;
    /**
     * 码率
     */
    private Long mediaBitrate;
    /**
     * 视频流高度
     */
    private Long mediaHeight;
    /**
     * 视频流宽度
     */
    private Long mediaWidth;
    /**
     * 视频时长，单位：秒
     */
    private Long mediaDuration;
    /**
     * 媒体文件的 Md5 值
     */
    private Long mediaMd5;
    /**
     * 企业代码
     */
    private Long tCorpCode;
    /**
     * 项目id
     */
    private Long tProjectId;
    /**
     * 已删除（0：否；1：是；）
     */
    @TableLogic
    private Integer delFlag;
    /**
     * 删除时间
     */
    private Long delTimeLong;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 操作人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long operatorUserId;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


}
